package values.skill
{
	import flash.events.IEventDispatcher;
	
	import isoengine.values.MapSkillRangeValue;
	
	import values.avatar.IAvatarValue;
	
	public interface ISkillValue extends IEventDispatcher, ISkillProperty
	{
		function get owner():IAvatarValue;
		
		function set owner(value:IAvatarValue):void;
		
		function get mpCost():int;
		
		function get range():MapSkillRangeValue;
		
		function get distance():int;
		
		function get template():SkillTemplateValue;
			
		function get isUltimateSkill():Boolean;
		
		function get useCount():int;
		
		function get level():int;
		
		function useSkill(value:Vector.<IAvatarValue> = null):void;
		
		function dispose():void;
		
		function initlize(skillKeyStr:String , levelInt:int):void;
		
		function get immediateEffectValue():IImmediateEffectValue;
		
		function get logicEffectValue():ILogicEffectValue;
		
		function checkSkillHasLogic(value:String):Boolean;
		
		function canUseSkill():Boolean;
		
		function get coolingRound():int;
	}
}